package com.fowo.api.model.tmp.tiktok.order;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * Tiktok订单临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpTiktokOrderImportPo {

  /** 订单号 */
  @ExcelProperty("订单号")
  @Size(max = 50, message = "订单号长度不能超过50")
  private String orderId;

  /** 订单状态 */
  @ExcelProperty("订单状态")
  @Size(max = 50, message = "订单状态长度不能超过50")
  private String status;

  /** 物流商名称 */
  @ExcelProperty("物流商名称")
  @Size(max = 50, message = "物流商名称长度不能超过50")
  private String shippingProvider;

  /** 物流商ID */
  @ExcelProperty("物流商ID")
  @Size(max = 50, message = "物流商ID长度不能超过50")
  private String shippingProviderId;

  /** 支付时间 */
  @ExcelProperty("支付时间")
  @DateTimeString(message = "支付时间不是有效的时间日期格式")
  private String paidTime;

  /** 卖家留言 */
  @ExcelProperty("卖家留言")
  @Size(max = 500, message = "卖家留言长度不能超过500")
  private String buyerMessage;

  /** 货币 */
  @ExcelProperty("货币")
  @Size(max = 50, message = "货币长度不能超过50")
  private String currency;

  /** 订单商品总额 */
  @ExcelProperty("订单商品总额")
  @DecimalString(message = "订单商品总额小数格式不正确", label = "订单商品总额")
  private String subTotal;

  /** 支付运费 */
  @ExcelProperty("支付运费")
  @DecimalString(message = "支付运费小数格式不正确", label = "支付运费")
  private String shippingFee;

  /** 卖方折扣金额 */
  @ExcelProperty("卖方折扣金额")
  @DecimalString(message = "卖方折扣金额小数格式不正确", label = "卖方折扣金额")
  private String sellerDiscount;

  /** 平台折扣金额 */
  @ExcelProperty("平台折扣金额")
  @DecimalString(message = "平台折扣金额小数格式不正确", label = "平台折扣金额")
  private String platformDiscount;

  /** 买方支付金额 */
  @ExcelProperty("买方支付金额")
  @DecimalString(message = "买方支付金额小数格式不正确", label = "买方支付金额")
  private String totalAmount;

  /** 产品原价总额 */
  @ExcelProperty("产品原价总额")
  @DecimalString(message = "产品原价总额小数格式不正确", label = "产品原价总额")
  private String originalTotalProductPrice;

  /** 折扣前运费 */
  @ExcelProperty("折扣前运费")
  @DecimalString(message = "折扣前运费小数格式不正确", label = "折扣前运费")
  private String originalShippingFee;

  /** 卖方折扣运费 */
  @ExcelProperty("卖方折扣运费")
  @DecimalString(message = "卖方折扣运费小数格式不正确", label = "卖方折扣运费")
  private String shippingFeeSellerDiscount;

  /** 平台折扣运费 */
  @ExcelProperty("平台折扣运费")
  @DecimalString(message = "平台折扣运费小数格式不正确", label = "平台折扣运费")
  private String shippingFeePlatformDiscount;

  /** 税款总额 */
  @ExcelProperty("税款总额")
  @DecimalString(message = "税款总额小数格式不正确", label = "税款总额")
  private String tax;

  /** 小订单费 */
  @ExcelProperty("小订单费")
  @DecimalString(message = "小订单费小数格式不正确", label = "小订单费")
  private String smallOrderFee;

  /** 运费税 */
  @ExcelProperty("运费税")
  @DecimalString(message = "运费税小数格式不正确", label = "运费税")
  private String shippingFeeTax;

  /** 商品税 */
  @ExcelProperty("商品税")
  @DecimalString(message = "商品税小数格式不正确", label = "商品税")
  private String productTax;

  /** RDF(零售配送费) */
  @ExcelProperty("RDF(零售配送费)")
  @DecimalString(
    message = "RDF(零售配送费)小数格式不正确",
    label = "RDF(零售配送费)"
  )
  private String retailDeliveryFee;

  /** 完整的收件人地址信息 */
  @ExcelProperty("完整的收件人地址信息")
  @Size(max = 1000, message = "完整的收件人地址信息长度不能超过1000")
  private String fullAddress;

  /** 收件人手机号 */
  @ExcelProperty("收件人手机号")
  @Size(max = 50, message = "收件人手机号长度不能超过50")
  private String phoneNumber;

  /** 收件人名称 */
  @ExcelProperty("收件人名称")
  @Size(max = 50, message = "收件人名称长度不能超过50")
  private String name;

  /** 邮编号码 */
  @ExcelProperty("邮编号码")
  @Size(max = 50, message = "邮编号码长度不能超过50")
  private String postalCode;

  /** 详细地址 */
  @ExcelProperty("详细地址")
  @Size(max = 500, message = "详细地址长度不能超过500")
  private String addressDetail;

  /** 区域编码 */
  @ExcelProperty("区域编码")
  @Size(max = 50, message = "区域编码长度不能超过50")
  private String regionCode;

  /** 街道地址1 */
  @ExcelProperty("街道地址1")
  @Size(max = 500, message = "街道地址1长度不能超过500")
  private String addressLine1;

  /** 街道地址2 */
  @ExcelProperty("街道地址2")
  @Size(max = 500, message = "街道地址2长度不能超过500")
  private String addressLine2;

  /** 街道地址3 */
  @ExcelProperty("街道地址3")
  @Size(max = 500, message = "街道地址3长度不能超过500")
  private String addressLine3;

  /** 街道地址4 */
  @ExcelProperty("街道地址4")
  @Size(max = 500, message = "街道地址4长度不能超过500")
  private String addressLine4;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String country;

  /** 州 */
  @ExcelProperty("州")
  @Size(max = 50, message = "州长度不能超过50")
  private String addressState;

  /** 县 */
  @ExcelProperty("县")
  @Size(max = 50, message = "县长度不能超过50")
  private String addressCounty;

  /** 市 */
  @ExcelProperty("市")
  @Size(max = 50, message = "市长度不能超过50")
  private String addressCity;

  /** 区 */
  @ExcelProperty("区")
  @Size(max = 50, message = "区长度不能超过50")
  private String addressDistrict;

  /** 镇 */
  @ExcelProperty("镇")
  @Size(max = 50, message = "镇长度不能超过50")
  private String addressTown;

  /** 配送地址 */
  @ExcelProperty("配送地址")
  @Size(max = 500, message = "配送地址长度不能超过500")
  private String dropOffLocation;

  /** 取消原因 */
  @ExcelProperty("取消原因")
  @Size(max = 500, message = "取消原因长度不能超过500")
  private String cancelReason;

  /** 取消请求发起者 */
  @ExcelProperty("取消请求发起者")
  @Size(max = 50, message = "取消请求发起者长度不能超过50")
  private String cancellationInitiator;

  /** 跟踪号 */
  @ExcelProperty("跟踪号")
  @Size(max = 50, message = "跟踪号长度不能超过50")
  private String trackingNumber;

  /** 卖家发货的时间 */
  @ExcelProperty("卖家发货的时间")
  @DateTimeString(message = "卖家发货的时间不是有效的时间日期格式")
  private String rtsTime;

  /** 平台指定的最晚发货时间 */
  @ExcelProperty("平台指定的最晚发货时间")
  @DateTimeString(message = "平台指定的最晚发货时间不是有效的时间日期格式")
  private String rtsSlaTime;

  /** 平台指定的最晚揽收时间 */
  @ExcelProperty("平台指定的最晚揽收时间")
  @DateTimeString(message = "平台指定的最晚揽收时间不是有效的时间日期格式")
  private String ttsSlaTime;

  /** 订单自动取消时间 */
  @ExcelProperty("订单自动取消时间")
  @DateTimeString(message = "订单自动取消时间不是有效的时间日期格式")
  private String cancelOrderSlaTime;

  /** 包裹ids */
  @ExcelProperty("包裹ids")
  @Size(max = 50, message = "包裹ids长度不能超过50")
  private String packageIds;

  /** 是否更新收件人地址 */
  @ExcelProperty("是否更新收件人地址")
  @BooleanString(message = "是否更新收件人地址格式不正确，请使用“是”，“否”")
  private String hasUpdatedRecipientAddress;

  /** 买方用户ID */
  @ExcelProperty("买方用户ID")
  @Size(max = 50, message = "买方用户ID长度不能超过50")
  private String userId;

  /** 指示订单是合并还是拆分 */
  @ExcelProperty("指示订单是合并还是拆分")
  @Size(max = 50, message = "指示订单是合并还是拆分长度不能超过50")
  private String splitOrCombineTag;

  /** 发货方式 */
  @ExcelProperty("发货方式")
  @Size(max = 50, message = "发货方式长度不能超过50")
  private String fulfillmentType;

  /** 卖家备注 */
  @ExcelProperty("卖家备注")
  @Size(max = 500, message = "卖家备注长度不能超过500")
  private String sellerNote;

  /** 仓库编号 */
  @ExcelProperty("仓库编号")
  @Size(max = 50, message = "仓库编号长度不能超过50")
  private String warehouseId;

  /** 付款方式名称 */
  @ExcelProperty("付款方式名称")
  @Size(max = 50, message = "付款方式名称长度不能超过50")
  private String paymentMethodName;

  /** 配送方式 */
  @ExcelProperty("配送方式")
  @Size(max = 50, message = "配送方式长度不能超过50")
  private String shippingType;

  /** 物流方式名称 */
  @ExcelProperty("物流方式名称")
  @Size(max = 50, message = "物流方式名称长度不能超过50")
  private String deliveryOptionName;

  /** 物流方式ID */
  @ExcelProperty("物流方式ID")
  @Size(max = 50, message = "物流方式ID长度不能超过50")
  private String deliveryOptionId;

  /** 最晚交货时间 */
  @ExcelProperty("最晚交货时间")
  @DateTimeString(message = "最晚交货时间不是有效的时间日期格式")
  private String deliverySlaTime;

  /** 是否货到付款 */
  @ExcelProperty("是否货到付款")
  @BooleanString(message = "是否货到付款格式不正确，请使用“是”，“否”")
  private String isCod;

  /** 是否为示例订单 */
  @ExcelProperty("是否为示例订单")
  @BooleanString(message = "是否为示例订单格式不正确，请使用“是”，“否”")
  private String isSampleOrder;

  /** 需要上传发票 */
  @ExcelProperty("需要上传发票")
  @Size(max = 50, message = "需要上传发票长度不能超过50")
  private String needUploadInvoice;

  /** 买家电子邮件地址 */
  @ExcelProperty("买家电子邮件地址")
  @Size(max = 50, message = "买家电子邮件地址长度不能超过50")
  private String buyerEmail;

  /** 发票号码 */
  @ExcelProperty("发票号码")
  @Size(max = 50, message = "发票号码长度不能超过50")
  private String cpf;

  /** 是否暂定订单 */
  @ExcelProperty("是否暂定订单")
  @BooleanString(message = "是否暂定订单格式不正确，请使用“是”，“否”")
  private String isOnHoldOrder;

  /** 是否待处理取消订单 */
  @ExcelProperty("是否待处理取消订单")
  @BooleanString(message = "是否待处理取消订单格式不正确，请使用“是”，“否”")
  private String isBuyerRequestCancel;

  /** 买方发起取消时间 */
  @ExcelProperty("买方发起取消时间")
  @DateTimeString(message = "买方发起取消时间不是有效的时间日期格式")
  private String requestCancelTime;

  /** 最晚发货时间 */
  @ExcelProperty("最晚发货时间")
  @DateTimeString(message = "最晚发货时间不是有效的时间日期格式")
  private String deliveryOptionRequiredDeliveryTime;

  /** 最晚揽收时间 */
  @ExcelProperty("最晚揽收时间")
  @DateTimeString(message = "最晚揽收时间不是有效的时间日期格式")
  private String shippingDueTime;

  /** 最晚运送时间 */
  @ExcelProperty("最晚运送时间")
  @DateTimeString(message = "最晚运送时间不是有效的时间日期格式")
  private String collectionDueTime;

  /** 最晚送达时间 */
  @ExcelProperty("最晚送达时间")
  @DateTimeString(message = "最晚送达时间不是有效的时间日期格式")
  private String deliveryDueTime;

  /** 揽收时间 */
  @ExcelProperty("揽收时间")
  @DateTimeString(message = "揽收时间不是有效的时间日期格式")
  private String collectionTime;

  /** 派送时间 */
  @ExcelProperty("派送时间")
  @DateTimeString(message = "派送时间不是有效的时间日期格式")
  private String deliveryTime;

  /** 取消时间 */
  @ExcelProperty("取消时间")
  @DateTimeString(message = "取消时间不是有效的时间日期格式")
  private String cancelTime;

  /** 店铺id */
  @ExcelProperty("店铺id")
  @LongString(message = "店铺id数值格式不正确", label = "店铺id", min = 0L)
  private String sid;
}
